package JZ.JZ58;

/**
 * @author corn
 * @create 2020-07-30-19:47
 */


/**
 * JZ58 对称的二叉树
 * 题目描述
 * 请实现一个函数，用来判断一棵二叉树是不是对称的。注意，如果一个二叉树同此二叉树的镜像是同样的，定义其为对称的。
 */
public class IsSymmetrical {

}
class Solution {
    boolean isSymmetrical(TreeNode pRoot)
    {
        if(pRoot == null){
            return true;
        }
        return symmetrical(pRoot.left,pRoot.right);
    }
    boolean symmetrical(TreeNode left,TreeNode right)
    {
        if(left == null && right == null){
            return true;
        }
        if(left == null || right == null){
            return false;
        }
        return ((left.val == right.val)?true:false)&& symmetrical(left.right,right.left)&& symmetrical(left.left,right.right);
    }
}
class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
